package com.nervenets.template.hibernate.domain.common;

import com.nervenets.template.hibernate.domain.common.vo.GlobalRuleEnableForm;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.SuperBuilder;

import java.io.Serializable;

@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class GlobalRuleSetting implements Serializable {
    @Builder.Default
    @ApiModelProperty(value = "分享奖励（单位：分）", dataType = "int", reference = "分享", notes = "1000")
    private GlobalRuleEnableForm<Integer> shareReward = new GlobalRuleEnableForm<>(true, 1000);
    @Builder.Default
    @ApiModelProperty(value = "导师免费更换次数", dataType = "int", reference = "导师", notes = "1")
    private int teacherChangeFreeTimes = 1;
    @Builder.Default
    @ApiModelProperty(value = "导师更换费用（单位：分）", dataType = "int", reference = "导师", notes = "5000")
    private int teacherChangePrice = 5000;
    @Builder.Default
    @ApiModelProperty(value = "排位赛每个段位的星星数", dataType = "int", reference = "排位赛", notes = "10")
    private int qualifyingLevelStar = 10;
    @Builder.Default
    @ApiModelProperty(value = "排位赛每个赛季的周数", dataType = "int", reference = "排位赛", notes = "1")
    private int qualifyingSeasonWeek = 1;
    @Builder.Default
    @ApiModelProperty(value = "排位赛单个习题作答超时时间（单位：秒）", dataType = "int", reference = "排位赛", notes = "20")
    private int qualifyingExerciseTimeout = 20;
    @Builder.Default
    @ApiModelProperty(value = "排位赛挑战超时时间（单位：秒）", dataType = "int", reference = "排位赛", notes = "60")
    private int qualifyingTimeout = 60;
    @Builder.Default
    @ApiModelProperty(value = "某某某是否打开", dataType = "boolean", reference = "排位赛", notes = "true")
    private boolean opened = true;
    @Builder.Default
    @ApiModelProperty(value = "提示文字", dataType = "string", reference = "排位赛", notes = "")
    private String tipsText = "提示文字xxxx";
    @Builder.Default
    @ApiModelProperty(value = "每周签到获取的金币数量(周一到周日)", dataType = "array", reference = "签到", notes = "[3, 3, 3, 3, 3, 3, 3]")
    private int[] goldOfWeekSign = new int[]{3, 3, 3, 3, 3, 3, 3};
    @Builder.Default
    @ApiModelProperty(value = "Media Sources", dataType = "array", reference = "Media", notes = "[]")
    private String[] mediaSources = new String[]{"baidu", "google", "youtube", "facebook"};
}
